package de.koller.worlders.engine.tiles.landscape;

import de.koller.worlders.WorldersRoot;
import de.koller.worlders.engine.tiles.data.MapData;
import de.koller.worlders.engine.tiles.landscape.level.EmptyLevel;
import java.awt.image.BufferedImage;

public class ImageGenerator extends LandscapeGenerator {

	public ImageGenerator( WorldersRoot wroot ) {
		super( wroot );
	}
	
	@Override
	public IGenerate generate( long segX, long segY, BufferedImage map, BufferedImage light ) {
		
		new EmptyLevel( wroot ).generate( 0, 0, map, light );
		
//		if( wroot.getUser().getMapName().equals( "natureFlat" ) )
//			new NatureFlat( wroot ).generate( 0, 0, map, light );
//		else if( wroot.getUser().getMapName().startsWith( "empty" ) )
//			new EmptyLevel( wroot ).generate( 0, 0, map, light );
//		else
//			new BasicLayer( wroot ).generate( 0, 0, map, light ); 
		
//		for( int tx = 0; tx < map.getWidth(); tx++ ) {
//			map.setRGB( tx, 0, 0x01000000 );
//			map.setRGB( tx, map.getWidth()-1, 0x01000000 );
//		} for( int ty = 0; ty < map.getHeight(); ty++ ) {
//			map.setRGB( 0, ty, 0x01000000 );
//			map.setRGB( map.getHeight()-1, ty, 0x01000000 );
//		}
		
		int m = MapData.MAP_SIZE / 2;

		for( int x = -4; x <= 4; x++ )
			for( int y = -4; y <= 0; y++ ) 
				map.setRGB( m + x, m + y, 0xffffffff );
		
//		for( int x = -5; x <= 5; x++ )
//			for( int y = -5; y <= 1; y++ )
//				light.setRGB( m + x, m + y, 0xffffffff );
		
		if( segX == 0 && segY == 0 ) {
			map.setRGB( m + -4, m - 1, 0x01000000 );
			map.setRGB( m + -4, m, 0x01000000 );
			map.setRGB( m + -3, m, 0x01000000 );
			map.setRGB( m + -2, m, 0x01000000 );
			map.setRGB( m + -1, m, 0x01000000 );
			map.setRGB( m +  0, m, 0x01000000 );
			light.setRGB( m, m-1, 0xffffffff );
			map.setRGB( m +  1, m, 0x01000000 );
			map.setRGB( m +  2, m, 0x01000000 );
			map.setRGB( m +  3, m, 0x01000000 );
			map.setRGB( m +  4, m, 0x01000000 );
			map.setRGB( m +  4, m - 1, 0x01000000 );
		}
		
		return this;
	}
	
}
